#include<stdio.h>
#include<stdlib.h>

// Linked List Structure defined
typedef struct linkedlist_node
{
	void * key;
	void * data;
	struct linkedlist *next;
}l_node;

// Initially, we'll read the data from the file, and we'll create a Linked List out of it
l_node *readFromFile();
void insert(l_node * start, int a);


//Inserting node at beginning
l_node *insertl_nodeAtBeginning(l_node *start, void *ptr_nodeData);//make void * for nodeData


//Displaying LinkedList from RAM
l_node *displayLinkedList(l_node *start);


//Write to File (Persistent Storage)
void writeToFile(l_node *start);


//Calling various Performing functions 
l_node *performOperation(int choice, l_node *start);


//Displaying the various operations
int displayOperations();


//Deleting a node from Linked List
//l_node *deletel_node(l_node *start);
l_node *deletel_node(l_node *start, void *ptr_nodeData);


//Searching in Linked List
l_node *searchl_node(l_node *start, void *ptr_nodeData);









/*
// Functions declared
l_node * createl_node();
int displayOperations();
l_node *performOperation(int choice, l_node *start);
l_node *insertl_nodeAtBeginning(l_node *start, void *nodeData);
l_node *insertl_nodeSortedOrder(l_node *start, void *nodeData, char *filename);
l_node *deletel_nodeAtBeginning(l_node *start);
l_node *deletel_node(l_node *start, void *data);
void display(l_node *start);
l_node *getByStringKey(l_node *start, char* filename, h_node **data[]);
*/

